home *** CD-ROM | disk | FTP | other *** search
/ Workbench Design / WB Collection.iso / datatypes / debox_dt / source / deboxcrc.asm < prev    next >
Assembly Source File  |  1996-04-07  |  978b  |  51 lines

  1.  
  2. ******************************************************************************
  3. *
  4. * Flowerpower's DeBox Datatype
  5. *
  6. * Written by Christian Buchner and David N. Junod
  7. *
  8. ******************************************************************************
  9. * DeBoxCRC.asm
  10. *
  11.  
  12.         SECTION Code,CODE
  13.  
  14.  
  15. * _DeBoxCRC ******************************************************************
  16.  
  17.         ; --- DeBoxCRC ---
  18.         ;
  19.         ;    a0: pointer to DeboxHeader
  20.         ;
  21.         ; -> d0: TRUE if header is okay
  22.         ;
  23.  
  24.         XDEF    _DeBoxCRC
  25.  
  26. _DeBoxCRC    move.b    (a0)+,d1    ; save CRC
  27.  
  28.         cmp.b    #1,(a0)        ; check headermark
  29.         bne.s    .false
  30.  
  31.         move.w    d2,-(sp)    ; calculate checksum
  32.         move.b    #1,d0        ; start value
  33.         move.w    #15-1,d2
  34. .loop        add.b    (a0)+,d0
  35.         ror.b    #1,d0
  36.         dbra    d2,.loop
  37.         move.w    (sp)+,d2
  38.  
  39.         cmp.b    d0,d1        ; compare checksum
  40.         bne.s    .false
  41.  
  42. .correct    moveq    #-1,d0        ; TRUE: header okay
  43. .exit        rts
  44.  
  45. .false        moveq    #0,d0        ; FALSE: header NOT okay
  46.         rts
  47.  
  48. ******************************************************************************
  49.  
  50.         END
  51.